package Day06;

import java.util.Scanner;

public class Text1 {
    public static void main(String[] args) {



//        //水仙花
//        System.out.println("判断水仙花数");
//
//        int i, j,k = 0;
//
//        //i 是个位， j是十位，k是百位
//
//        Scanner reader = new Scanner(System.in);
//
//        System.out.println("只算3位数的代码\n");
//
//        int m;
//
//        m = reader.nextInt();
//
//        k = m / 100;
//
//        j = (m / 10) % 10;
//
//        i = m % (k*10+j);
//
//        if (Math.pow(k,3)+Math.pow(j,3)+Math.pow(i,3)== m)
//
//            System.out.println(+m+"是水仙花数");
//
//        else System.out.println(+m+"不是水仙花数");


//        /**
//         * 6的因子 1，2，3
//         * 1+2+3 = 6
//         * 求1000以内的完数
//         * 28: 1,2,14,4,7
//         */
//        //Random random = new Random();
//        int[] yue = new int[1000];
//        int num = 6;
//        int sum_yue = 0;
//        for (int i = 1; i <= 1000.; i++) {
//            if (num % i == 0) {
//                yue[i] = i;
//                //  System.out.println("yue数组里："+yue[i]);
//                sum_yue += yue[i];
//                // System.out.println(sum_yue);
//                if (sum_yue == num) {
//                    System.out.println("完数是：" + num);
//                }else {
//                    System.out.println(num + "不是完数");
//                }
//            }
//        }



        //输出0-1000之间的所有完数
        //完数的因子之和等于数本身
        //6.....1,2,3

//        int[] s=new int[1000];
//        for (int i = 0;i<1000;i++){
//            s[i] = i+1;
//        }
//        for (int s=1;s<=1000;s++) {//源数
//            int score = 0;  //因子和
//            //求因子和
//            int z = 0;
//            for (int i = 1; i < s; i++) {//因子
//                int a = s % i;
//                if (a == 0) {
//                    score += i;
//                    z = i;
//                    }
//
//            }
//            //判断是不是完数
//            if (score==s){
//            System.out.println("完数为："+s+","+z);
//        }else {
//                //System.out.println(s+"不是完数");
//            }
//        }


        //输出完数，并输出其因子
        for (int s=1;s<=1000;s++) {//源数
            int score = 0;  //因子和
            //求因子和
            for (int i = 1; i < s; i++) {//因子
                int a = s % i;
                if (a == 0) {
                    score += i;
                }
            }
            if (score==s){
                System.out.print("完数为："+s);
                System.out.print(",因子为:");
                for (int z=1;z<s;z++){
                    if (s%z == 0){
                        System.out.print(z+" ");
                    }
                }System.out.println();
            }

        }








//        //36块砖，36人搬，男搬4，女搬3，小孩两人搬一个
//        //要求一次性搬完，问：男孩女孩小孩个若干{for}
//        int a,b,c;
//        for (a=0;a<=9;a++){
//            for (b=0;b<12;b++){
//                c=36-a-b;
//                if (c%2==0){
//                    if (4*a+3*b+c/2 == 36){
//                        System.out.println("男孩"+a+"人,"+"女孩"+b+"人,"+"小孩"+c+"人");
//                    }
//                }
//            }
//        }



//        //百钱买百鸡
//        int a,b,c;
//        for (a=1;a<33;a++){
//            for (b=1;b<50;b++){
//                c=100-a-b;
//                if (c%3==0){
//                    if (3*a+2*b+c/3==100){
//                        System.out.println(a+"只公鸡"+b+"只母鸡"+c+"只小鸡");
//                    }
//                }
//            }
//        }





//        //任意整数取出他的各位数字
//        // for版
//        int num = 123456;
//        for (;num!=0;num=num/10){
//            int i = num%10;
//            System.out.println(i);
//        }
//            //while版    并且求出各项和
//        int num = 123456;
//        int he = 0;
//        while(num != 0){
//            int i = num%10;
//            System.out.println(i);
//            he = i+he;
//            num = num/10;
//        }
//        System.out.println(he);

    }
}
